Zaphod, a binary editor for AMIGA computers Release 1.0

Holger Schemel aeglos@valinor.ms.sub.org

June 3, 1994

Contents

1 Copyright and all that 1

2 About Zaphod 1

3 Installation 2

4 Starting Zaphod from Workbench and Shell 2

5 The usage of the program 4

5.1 The main window of Zaphod . . . . . . . . . . . . . . . . . . . 4 5.1.1 The gadgets . . . . . . . . . . . . . . . . . . . . . . . 4 5.1.2 The edit field . . . . . . . . . . . . . . . . . . . . . . . 4

5.2 The menues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5.2.1 Project . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5.2.2 Edit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5.2.3 Settings . . . . . . . . . . . . . . . . . . . . . . . . . . 6 5.2.4 Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

6 Credits 7

7 Bug reports and others 7

1 Copyright and all that

Zaphod is copyrighted software \begin{matrix}c \\ ◯ \end{matrix}1993-94 by Holger Schemel.

The program may be freely distributed with the following restrictions: The archive and all its contents may not be changed, and no files may be removed or added to the archive. All rights reserved.

No guarantee of any kind is given that the programs described in this document are 100% reliable. You are using this material at your own risk. The author can not be made responsible for any damage which is caused by using these programs.

This package can be included in public domain collections, including those on CD-ROM. The distribution file may be uploaded to Bulletin Board Systems or FTP servers. None of the program nor parts of it may be included or used in commercial programs without a written permission from the author.

If you have paid more than $5, it’s yout own fault.

The usage of this program close by nuclear power stations, the usage of weapons and military equipment and the consumption of radio active hazelnuts is your own risk!

2 About Zaphod

Zaphod is a file editor for binary files in the tradition of classic programs like “FileZap” and “NewZap”. However, it is written to use features of AmigaOS 2.0 so you need this or a higher version of the Amiga operation system to use this program. The usage with OS 3.0 or higher shouldn’t make any problems.

This file editor lets you edit several files at a time. The files you want to edit can be marked with the mouse button while holding the shift key right at the start from Workbench, chosen from the ASL file requester, chosen by dropping their icons into the window or, if you started Zaphod from shell, by specifying the files as parameters after the program name.

The program window of Zaphod opens on the Workbench, on a given public screen or on its own public screen which will then be named ZAPHOD.1 (or ZAPHOD.x, if you started Zaphod x times with its own screen). If you started Zaphod on a public screen, you can drop icons into it by simply dropping them on the application icon, which has the name ZAPPICON.1 or ZAPPICON.x. You can get Zaphod’s public screen into the foreground by double-clicking on its application icon.

The whole settings of the program can be given and were saved in the ToolTypes in the program icon. If you start it from shell, give the settings as program parameters. At the time there is no support for an extra configuration file, so if you want to start it from shell regularly, make an alias in s:user-startup of the form alias zaphod

zaphod <configuration parameters>.

3 Installation

Just copy the whole drawer at the place you want to have it. It’s enough to have the files “Zaphod” and “Zaphod.info”.

If you have installed AmigaOS 2.1 or above, you can copy the file “zaphod.catalog” into “LOCALE:Catalogs/¡your language¿”. At this time, there is only a catalog for German language.

Additionally, there are some extra fonts in the “Zaphod/fonts” directory. The “topaz” variations are non-proportional, the “tripaint” fonts are proportional ones. Just try them out (They must be copied to your local “FONTS:” directory). These fonts are designed to be small or thin or both, so you can use them to display more data in the Zaphod edit window than with the standard system fonts.

4 Starting Zaphod from Workbench and Shell

The ToolTypes are the same as the shell parameters, that means if you have a ToolType of the form TOOLTYPE=PARAMETER, then you can give this exactly as a shell parameter (you can use a blank instead of the “=”). (See the descriptions of the menu Settings for more information.)

The ToolTypes are:

LEFT Left position the window opens.

TOP Top position the window opens.

LINES The number of lines displayed in the edit window.

COLUMNS The number of longwords (four data bytes) per line in the edit window.

TEXTFONTNAME Here you can choose the text font of the Zaphod window. <default> uses the system font choosen in your system preferences.

TEXTFONTSIZE Choose the size of the font. <default> uses the system size again.

EDITFONTNAME Here you can choose the edit font, which is used in the edit field of the Zaphod window. <default> uses the non-proportial system font again. It is recommended to use one of the fonts shipped with Zaphod to be able to display more characters than with the system fonts. If you don’t like them, you can get the font editor FEd from AmigaOS 1.3 and create your own fonts for Zaphod.

EDITFONTNAME The size of the chosen edit font.

PUBSCREEN Here you can specify the name of a public screen on which Zaphod shall open its window on. If you specify WBENCH, the window is opened on the Workbench. With OWNSCREEN you can advise Zaphod to open its own public screen, which is then given the name ZAPHOD.x, where x is the number of the instance of Zaphod with an own public screen.

EXPERTMODE This parameter tells Zaphod how often it should ask for confirmation. You should start with NORMAL. If you don’t want to see too many questions “Do you really want...?”, then choose MODERATE. With EXPERT, Zaphod asks no more questions; only choose this option if you really know what you’re doing.

HEXDESIGN Choose UPPER to have upper case characters in the hexadecimal edit field and LOWER to have lower case characters.

SIZEGADGET Choose RIGHT to have the wider window border with the size gadget on the right window border and BOTTOM to have it on the bottom border.

LOADMODE  You can choose INSERT ONE, INSERT ALL or APPEND ALL. See Set-

tings / Files for a description.

CLIPMODE Choose INTERNAL or EXTERNAL for an internal or external clipboard handling.

CLIPNR INTERNAL Choose the clip number used for internal clipboard handling. Don’t choose 0 here, because that’s the clip number of the system clipboard.

CLIPNR EXTERNAL Choose the clip number used for external clipboard handling. Better don’t change it from the default value 0 here, because that’s the clip number of the system clipboard.

ADDRESSBOX Choose YES or NO to have the addresses field in the edit window displayed or not.

VIEWMODE Choose HEX, ASCII or HEX&ASCII to have the file contents displayed as hexadecimal values, ASCII characters or both.

If you start Zaphod from shell, you can specify up to ten files which will then be loaded to the file buffers. If you give a question mark here, Zaphod will give you a command pattern known from the system commands.

5 The usage of the program

5.1 The main window of Zaphod

After starting Zaphod, you see the main window with the edit field and some gadgets. If you have already given some file names at the start, the first one will be displayed in the edit window (if it can be opened).

The file name of the file that is currently in the edit buffer will be displayed in the title of the window.

5.1.1 The gadgets

If you want to search for a byte sequence in the file, use the search gadgets below of the edit field. Type the byte sequence into the string gadget; you can use ASCII characters or hexadecimal values or both mixed. Hexadecimal values must be two numbers preceeded with a “$” or a “0x”. If these special characters are part of the search string, just put them into quotation marks. Some examples:

$20$20$3c
0x200x200x3c
Test$00
$20"Hello, World"0x00

To start searching, click onto the “Search” gadget or press the underlined character (s). If the search text was found, the cursor will be placed on the first character of the text found in the file buffer. If the search was succesful can also be seen at the “Status” field.

The search directions can be chosen with the corresponding gadget. At the search from the start or from the end, the status of the gadget will be changed to searching behind/before the cursor to allow easy sequential searching.

Choose case dependency with the corresponding gadget.

At the left side, there are two gadgets showing the actual cursor position in the file buffer and the length of the whole file. You can jump directly to a certain file position with the first of these two gadgets.

Below of the gadgets for text searching there are gadgets for replacing file contents with some other data. Just type the new byte sequence into the “Replace” string gadget (with the same format as the search text) and choose “Replace” instead of “Search”.

With the gadget “Replacemode”, you can choose if all matching texts shall be replaced, only the next matching text or if there should be a requester for each match.

All gadgets can be used by pressing the appropriate key, which is the key in the gadget text that is underlined.

5.1.2 The edit field

The edit field consists of up to three parts: the address field, the hexadecimal field and the ASCII field. All three can be scrolled with the scrollbar at the right.

If you click into the edit field, you can type input directly into the file buffer (where you can only use the number keys and the keys a to z and A to Z in the hex field).

With the tabulator key, you can switch between the hex and ASCII field. Move the cursor with the usual cursor keys, Shift-Up/Down moves to the beginning/end of the file, Ctrl-Up/Down moves one page up or down.

5.2 The menues

There are the following menues: 5.2.1 Project The “Project” menu has the following items: New Clears the actual file buffer (not the file itself). All other file buffers

remain untouched.

Open Opens a new file. Uses the ASL file requester. Save Saves the file under the name it was opened as or under the name it was

already saved once.

Save As... Like “Save”, but asks for a file name with the ASL file requester. Print (Not yet implemented.) Print As... (Not yet implemented.) About... Short description about the program and the author and the name of

the screen the program is opened on.

User... Information about the user of the program. Quit Quit the program. If there are any file buffers that are modified but

unsaved, you will get a warning.

5.2.2 Edit These are the usual block operation/clipboard functions (to indicate a block, just mark it with the mouse as usual), as there are: Cut Cut the marked block and put it into the clipboard. Copy Copy the marked block into the clipboard. Paste Paste the contents of the clipboard to the edit field (insert them at the cursor

position). Erase Erase the marked block without touching the clipboard. Undo Undo the last block operation.

5.2.3 Settings

The “Settings” menu contains the following items:

Text font With automatic, choose the system font. With user selected, choose a selected font for window and gadget text. With select..., you can choose that font.

Edit font The submenu items are the same and have the same functions like the options in the menu above, but you can make decisions about the font used in the edit field.

Addresses Specify if you want to have the addresses field or not.

Viewmode Specify if you want to see the file buffer contents as hexadecimal values, ASCII characters or both.

Hex number design Here you can choose if you prefer upper or lower case characters for the hexadecimal part of the edit field.

Border for Sizegadget Chooses the position of the wider border of the window (either at the right or at the bottom). Lets you gain some more horizontal pixels if you need them to display one more column.

Clipboard Specify if you want internal or external clipboard handling. With external clipboard handling enabled, you can copy data to and from other applications.

Files Here you can choose the behavior of Zaphod when loading several files at one time. They can be completely appended to the other file buffers, completely inserted or appended except the first one which goes to the actual file buffer.

Auto-resize window Re-calculates the window dimensions and proportions. Useful if you have changed a font or the window size and want to optimize the window size now.

Reset to default Resets all settings to the default settings.

Load settings Loads the settings from the program icon. This doesn’t work if you have started the program from the shell.

Save settings Saves the settings to the program icon. This doesn’t work if you have started the program from the shell.

5.2.4 Files

Here you can directly choose each file buffer. There is always one menu item with an “(empty)” file buffer which can be chosen to drop a file by its icon into it or load a new file from the “Open” menu.

6 Credits

Thanks to all beta testers, who helped me much with sometimes detailed bug reports, suggestions or comments about the program style.

Special thanks goes to Albert Weinert for his program “KitCat” which allows easy creation of localization catalogs, and to Dr. Peter Kittel for his “Amiga-Glossar”.

7 Bug reports and others

If you find errors (in the program itself or in the documentation), want to write a new language catalog for your language, want to have new features or the source code or have other suggestions, write to:

Holger Schemel Sennehof 28 D-33659 Bielefeld Germany Telephone: (Germany) (05 21) 49 32 45

E-Mail: aeglos@valinor.ms.sub.org (at home) aeglos@uni-paderborn.de (university) q99492@pbhrzx.uni-paderborn.de (university)

E-Mail preferred.